function setArticle(){
    var article = tinyMCE.get("ems_content_Article_article").getContent();
    $("#ems_content_Article_article").val(article);
}
function setServiceButtonMessage(){
    var article = tinyMCE.get("ems_service_button_message").getContent();
    $("#ems_service_button_message").val(article);
}
function trim (myString){
    return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function removeFromForm(elem){
    $(elem).fadeOut('slow',
        function(){
            $(this).remove();
        }
    );
}
/*
 *  Places a loader image in the given DOM element
 *
 *  @param element  string  Is the id of the DOM element
 */

function showLoaderMain() {
    $('#main').append('<div class="ajax-loader ajax-loader-main ui-widget ui-widget-content ui-corner-all"><img alt="ajax-loader" src="/images/loader.gif"></div>');
}

function showLoaderComponentRight() {
    $('#component_right').append('<div class="ajax-loader ajax-loader-component-right"><img alt="ajax-loader" src="/images/loader.gif"></div>');
}

function showLoaderTree() {
    $('#tree_content').append('<div class="ajax-loader ajax-loader-tree"><img alt="ajax-loader" src="/images/loader.gif"></div>');
}

function showMainContent() {
    $('#main').children().show();
}

function hideMainContent() {
    $('#main').children().hide();
}

function hideTreeContent() {
    $('#tree_content').hide();
}

function showComponentRightContent() {
    $('#component_right').children('.form').show();
}
function hideComponentRightContent() {
    $('#component_right').children('.form').hide();
}

function hideLoader() {
    $('.ajax-loader').remove();
}

function clearView() {
    $('#elements_content').empty();
    $('#main').empty();
}

function clearMain() {
    $('#main').empty();
}

function clearTree() {
    $('#tree_content').empty();
}

function bannerBindChangeEvent(){
    $('input#ems_element_Banner_is_local_1').change(
        function(){
            if($(this).is(':checked')){
                $('div#banner_link_local').fadeIn("slow");
                $('div#banner_link_external').fadeOut("slow");
                $('input#ems_element_Banner_link').val("");
            }
        }
    );
    $('input#ems_element_Banner_is_local_0').change(
        function(){
            if($(this).is(':checked')){
                $('div#banner_link_local').fadeOut("slow");
                $('div#banner_link_external').fadeIn("slow");
                $('input#autocomplete_ems_element_Banner_section_id').val("");
            }
        }
    );
}

function menuBindEventActions(){
    $('input#ems_element_Menu_is_vertical_1').change(
        function(){
            if($(this).is(':checked')){
                $('div#menu_uses_bullet').fadeIn("slow");
                if($('input#ems_element_Menu_uses_bullet_1').is(':checked')){
                    $('div#menu_bullet').fadeIn("slow");
                }
            }
        }
    );
    $('input#ems_element_Menu_is_vertical_0').change(
        function(){
            if($(this).is(':checked')){
                $('input#ems_element_Menu_uses_bullet_0').attr('checked', true);
                $('div#menu_bullet').fadeOut("slow");
                $('div#menu_uses_bullet').fadeOut("slow");

            }
        }
    );
    $('input#ems_element_Menu_uses_bullet_1').change(
        function(){
            if($(this).is(':checked')){
                $('div#menu_bullet').fadeIn("slow");
            }
        }
    );
    $('input#ems_element_Menu_uses_bullet_0').change(
        function(){
            if($(this).is(':checked')){
                $('div#menu_bullet').fadeOut("slow");
            }
        }
    );
    $('#add_option').click(
        function() {
            $('#extraoptions').append(addOption(options));
            options = options + 1;
        }
    );
    $('a.remove').click(
        function(){
            removeFromForm($(this).parent());
        }
    );
    $('#submit').click(
        function(event){
            event.preventDefault();
            if(!menuHasErrors(options)){
                $('.form_menu').submit();
            }
        }
    );
}

function menuHasErrors(options){
    var msgs = '';
    var error = false;
    var i = 0;
    
    /*
     *  Check if there is no option with title set and no link or
     *  if link is set and no title
     */
    for(i = 0; i < options; i++ ){
        if($('.form_menu').has('input#ems_element_Menu_Options_'+i+'_is_local_1').length){ //this for checking that the option exists
            if($('input#ems_element_Menu_Options_'+i+'_is_local_1').is(':checked')){
                $('input#ems_element_Menu_Options_'+i+'_title').val('');
                $('input#ems_element_Menu_Options_'+i+'_link').val('');

                if(!$('input#ems_element_Menu_Options_'+i+'_section_id').val()
                    || $('input#autocomplete_ems_element_Menu_Options_'+i+'_section_id').val() == ''){
                    msgs = msgs + '- Debe indicar el nombre de la sección a la que dirige la opción por ser de tipo Local\n';
                    error = true;
                }
            } else {
                $('input#ems_element_Menu_Options_'+i+'_section_id').val(null)
                $('input#autocomplete_ems_element_Menu_Options_'+i+'_section_id').val('');
                
                if($('input#ems_element_Menu_Options_'+i+'_title').val().trim() == ''){
                    if($('input#ems_element_Menu_Options_'+i+'_link').val().trim() != '' ){
                        msgs = msgs + '- Debe indicar el nombre para la opción que dirige al URL: '+$('input#ems_element_Menu_Options_'+i+'_link').val().trim()+'\n';
                        error = true;
                    }
                }
                if($('input#ems_element_Menu_Options_'+i+'_link').val().trim() == ''){
                    if($('input#ems_element_Menu_Options_'+i+'_title').val().trim() != '' ){
                        msgs = msgs + '- Debe indicar el URL al que dirige la opción de nombre: '+$('input#ems_element_Menu_Options_'+i+'_title').val().trim()+'\n';
                        error = true;
                    }
                } 
                if($('input#ems_element_Menu_Options_'+i+'_title').val().trim() == ''
                    && $('input#ems_element_Menu_Options_'+i+'_link').val().trim() == ''){
                    msgs = msgs + '- Hay al menos una opción vacia, eliminela o complete sus campos.';
                    error = true;
                    break;
                }
            }
        }
    }

    // If no errors in the options then check that no option is dupiclated
    if(!error){
        for(i = 0; i < options; i++ ){
            for(var j = i+1; j < options; j++){
                if($('.form_menu').has('input#ems_element_Menu_Options_'+i+'_is_local_1').length){ //this for checking that the option exists
                    if($('input#ems_element_Menu_Options_'+i+'_is_local_1').is(':checked')
                        && $('input#ems_element_Menu_Options_'+j+'_is_local_1').is(':checked')){
                        if($('input#ems_element_Menu_Options_'+i+'_section_id').val() == $('input#ems_element_Menu_Options_'+j+'_section_id').val() 
                            ||
                            $('input#autocomplete_ems_element_Menu_Options_'+i+'_section_id').val() == $('input#autocomplete_ems_element_Menu_Options_'+j+'_section_id').val()){
                            msgs = msgs + '- Hay dos opciones de tipo local que dirigen a la misma sección.\n';
                            error = true;
                            break;
                        }
                    } else if ($('input#ems_element_Menu_Options_'+i+'_is_local_0').is(':checked')
                                &&
                                $('input#ems_element_Menu_Options_'+j+'_is_local_0').is(':checked')) {
                        if($('.form_menu').has('input#ems_element_Menu_Options_'+j+'_is_local_1').length){
                            if($('input#ems_element_Menu_Options_'+i+'_title').val().trim() == $('input#ems_element_Menu_Options_'+j+'_title').val().trim() 
                                &&
                                $('input#ems_element_Menu_Options_'+i+'_link').val().trim() == $('input#ems_element_Menu_Options_'+j+'_link').val().trim()){
                                msgs = msgs + '- La opción "'+$('input#ems_element_Menu_Options_'+i+'_title').val().trim()+'" con URL: "'+$('input#ems_element_Menu_Options_'+i+'_link').val().trim()+'" está duplicada.\n';
                                error = true;
                                break;
                            }
                        }
                    }
                }
            }
        }
    }

    if(error){
        alert('Se encontraron los siguientes errores:\n'+msgs);
    }
    return error;
}

function featuresblockBindEventActions(){
    $('input#ems_element_FeaturesBlock_uses_bullet_1').change(
        function(){
            if($(this).is(':checked')){
                $('div#featuresblock_bullet').fadeIn("slow");
                $('div#featuresblock_bullet_new').fadeIn("slow");
            }
        }
    );
    $('input#ems_element_FeaturesBlock_uses_bullet_0').change(
        function(){
            if($(this).is(':checked')){
                $('div#featuresblock_bullet').fadeOut("slow");
                $('div#featuresblock_bullet_new').fadeOut("slow");
            }
        }
    );
    $('a#add_feature').click(
        function() {
            $('#extrafeatures').append(addFeature(features));
            features = features + 1;
        }
    );
    $('a.remove').click(
        function(){
            removeField($(this).parent());
        }
    );
}
